<?php

# -- DÉBUT NOTE DE LICENCE -------------------------------------
#
# Ce fichier fait partie de Clicpage.
#
# Copyright (c) 2010 Francois (www.clicpage.net)
# Distribué selon les termes de la licence GPL version 2.0.
# Consultez le fichier LICENCE ou
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
#
# -- FIN NOTE DE LICENCE ---------------------------------------

class cpModuleMaintenance extends cpModuleAdmin
{

	
	
		
	
	/// @name Initialisation
	//@{
	
	
	public function __construct($core)
    {
    
        parent::__construct($core); 
        
        # Permission nécessaire: superadmin
		$this->core->auth->verifierPermission('superadmin', true);	
        
        $this->setTitreModule(__('Maintenance'));
        
        $this->core->chargerThemes();
        
        # CSS et Javascript
		$this->setCSS('maintenance');
        
    }
	//@}
    
	
	

	
	/// @name Interface du module
	//@{
	
	
	public function interfaceModule()
	{
		
		# Version de Clicpage
		$updater = new cpUpdate(CP_UPDATE_URL,'clicpage',CP_UPDATE_VERSION,CP_CHEMIN_CACHE.'/versions');
        $new_v = $updater->check(CP_VERSION);
		
		$html =
		$this->afficherMessages().
		'<h3>'.__('Version de Clicpage').'</h3>'.
		'<p>'.sprintf('Vous utilisez présentement Clicpage %s.', CP_VERSION).'</p>';
		
		if($new_v) {
			$html.=
			'<p>'.sprintf(__('Clicpage %s est disponible.'),$new_v).'</p>'.			
			'<form action="index.php?module=update" method="get">'.
			'<p><input type="hidden" name="step" value="check" />'.
			'<input type="hidden" name="module" value="update" />'.
			'<input type="submit" value="'.__('Mettre à jour Clicpage').'" /></p>'.
			'</form>';
		}
		
		# Thèmes
		$html.=
		'<h3>'.__('Thèmes').'</h3>'.
		'<p><strong>'.__('Thèmes installés').'</strong></p>'.
		'<table>'.
		'<thead>'.
			'<tr>'.
				'<th class="theme_nom">'.__('Thème').'</th>'.
				'<th class="theme_auteur">'.__('Auteur').'</th>'.
				'<th class="theme_version">'.__('Version').'</th>'.
				'<th class="theme_upd">'.__('Mettre à jour').'</th>'.
			'</tr>'.
		'</thead>'.
		'<tbody>';
		
		foreach($this->core->themes as $theme)
		{

			$updater = new cpUpdate(CP_THEMES_UPDATE_URL.$theme['identifiant'].',upd.xml','theme-'.$theme['identifiant'],'stable',CP_CHEMIN_CACHE.'/versions');
        	$new_v = $updater->check($theme['version']);
			
			$html.=
			'<tr>'.
				'<td class="theme_nom">'.html::escapeHTML($theme['nom']);
			
			if(is_array($theme['versionCp']) && (version_compare($theme['versionCp'][0], CP_VERSION,'>') || version_compare($theme['versionCp'][1], CP_VERSION,'<')))
			{
				$html.=
					'<span class="erreur" style="padding:0">'.sprintf(__('Ce module nécessite une version de Clicpage comprise entre %s et %s pour fonctionner adéquatement.'), $theme['versionCp'][0], $theme['versionCp'][1]).'</span>';
			}
			elseif(!empty($theme['versionCp']) && version_compare($theme['versionCp'], CP_VERSION,'>'))
			{
				$html.=
					'<span class="erreur" style="padding:0">'.sprintf(__('Ce module nécessite Clicpage %s ou ultérieur pour fonctionner adéquatement.'), $theme['versionCp']).'</span>';
			}
			
			$html.=
				'</td>'.
				'<td class="theme_auteur">'.html::escapeHTML($theme['auteur']).'</td>'.
				'<td class="theme_version">'.html::escapeHTML($theme['version']).'</td>'.
				'<td class="theme_upd">';
			
			if($new_v) {
				$html.=
					'<a href="index.php?module=updateExt&upd=theme&id='.$theme['identifiant'].' ">'.__('Mettre à jour').'</a>';
			} else {
				$html.='&nbsp;';
			}
			
			$html.=
			'</td>'.
			'</tr>';
			
		}
		
		$html.=
		'</tbody>'.
		'</table>'.
		'<p><strong>'.__('Installer un thème').'</strong></p>'.
		'<form action="index.php?module=updateExt" method="post" enctype="multipart/form-data">'.
			$this->core->nonceHTML('installerTheme').
			form::hidden('action', 'installerTheme').
			form::hidden(array('MAX_FILE_SIZE'),CP_MAX_UPLOAD_SIZE).
			'<p>'.
				'<label for="theme_fichier">'.__('À partir d\'un fichier').'</label>'.
				'<input name="theme_fichier" id="theme_fichier "type="file" size="30"/> '.__('OU').
			'</p>'.
			'<p>'.
				'<label for="theme_url">'.__('À partir d\'une URL').'</label>'.
				form::field('theme_url', 40, 500, '').
			'</p>'.
			'<p><input type="submit" value="'.__('Installer').'" /></p>'.
		'</form>';
				
		# Plugins
		
		$html.=
		'<h3>'.__('Plugins').'</h3>';
				
		if(!empty($this->core->plugins))
		{

			$html.=
			'<p><strong>'.__('Plugins installés').'</strong></p>'.
			'<table>'.
			'<thead>'.
				'<tr>'.
					'<th>'.__('Plugin').'</th>'.
					'<th>'.__('Auteur').'</th>'.
					'<th>'.__('Version').'</th>'.
					'<th>'.__('Mettre à jour').'</th>'.
				'</tr>'.
			'</thead>'.
			'<tbody>';
			
			foreach($this->core->plugins as $plugin)
			{
				
				$updater = new cpUpdate(CP_PLUGINS_UPDATE_URL.$plugin['identifiant'].',upd.xml','plugin-'.$plugin['identifiant'],'stable',CP_CHEMIN_CACHE.'/versions');
	        	$new_v = $updater->check($plugin['version']);
				
				$html.=
				'<tr>'.
					'<td class="plugin_nom">'.html::escapeHTML($plugin['nom']);
					
				if(is_array($plugin['versionCp']) && (version_compare($plugin['versionCp'][0], CP_VERSION,'>') || version_compare($plugin['versionCp'][1], CP_VERSION,'<')))
				{
					$html.=
						'<span class="erreur" style="padding:0">'.sprintf(__('Le module %s nécessite une version de Clicpage comprise entre %s et %s pour fonctionner adéquatement.'), $plugin['nom'], $plugin['versionCp'][0], $plugin['versionCp'][1]).'</span>';
				}
				elseif(!empty($plugin['versionCp']) && version_compare($plugin['versionCp'], CP_VERSION,'>'))
				{
					$html.=
						'<span class="erreur" style="padding:0">'.sprintf(__('Le module %s nécessite Clicpage %s ou ultérieur pour fonctionner adéquatement.'), $plugin['nom'], $plugin['versionCp']).'</span>';
				}
				
				$html.=
					'</td>'.
					'<td class="plugin_auteur">'.html::escapeHTML($plugin['auteur']).'</td>'.
					'<td class="plugin_version">'.html::escapeHTML($plugin['version']).'</td>'.
					'<td class="plugin_upd">';
				
				if($new_v) {
					$html.=
						'<a href="index.php?module=updateExt&upd=plugin&id='.$plugin['identifiant'].' ">'.__('Mettre à jour').'</a>';
				} else {
					$html.='&nbsp;';
				}
				
				$html.=
					'</td>'.
				'</tr>';
				
			}
			
			$html.=
			'</tbody>'.
			'</table>';
		}

		$html.=		
		'<p><strong>'.__('Installer un plugin').'</strong></p>'.
		'<form action="index.php?module=updateExt" method="post" enctype="multipart/form-data">'.
			$this->core->nonceHTML('installerPlugin').
			form::hidden('action', 'installerPlugin').
			form::hidden(array('MAX_FILE_SIZE'),CP_MAX_UPLOAD_SIZE).
			'<p>'.
				'<label for="plugin_fichier">'.__('À partir d\'un fichier').'</label>'.
				'<input name="plugin_fichier" id="plugin_fichier "type="file" size="30"/> '.__('OU').
			'</p>'.
			'<p>'.
				'<label for="plugin_url">'.__('À partir d\'une URL').'</label>'.
				form::field('plugin_url', 40, 500, '').
			'</p>'.
			'<p><input type="submit" value="'.__('Installer').'" /></p>'.
		'</form>';
		
		return $html;
	
	}
	//@}
    
	
}

?>